Devlog
August 1
One of the biggest issues that I've heard about BoundWorlds is that it lacks some of the visual flair of games built from the ground up, and a lot of that is due to technical reasons. Because it was designed around the premise that every sprite can take on the functions of any other sprite if the player sets the right variables, there is a great deal of overhead-per-sprite, and that makes it hard to create cool visuals like particle effects and large numbers of small, simple objects without experiencing slowdown.
In order to remedy this, I've spent the last month pulling apart the sprite code and making each function modular, so that the game can figure out which functions each sprite actually needs and assign them accordingly, as well as changing the global update loop - which previously updated every sprite each frame - into a large number of smaller loops, each of which only contains the sprites it actually needs.
This is a major code overhaul and is taking some time. But I can already see the improvements, and I'm hoping that when it's done, world editors will really be able to make their worlds pop with all kinds of visual effects.
June 20
This month was mainly spent making the world editor easier to get into. I've added a tutorial to show new players the ropes.
There have also been some big changes to the way Husks and Shards are earned. Instead of just periodically converting Chaos into resources, the Chaos Meter instead spawns monsters in the editor, who must be clicked on to collect their resources.
The system is similar behind the scenes, but should now feel more engaging and tie earning these resources to specific actions rather than handing them out at random.
June 25
Added a bunch of general polish to both the interface and several existing worlds, and added an options menu.
There is also a new world editor tool, a Debug Shop that lets players buy any item included in their world. This makes testing items a lot easier.
June 8
Big changes to the builder resource and reward system, with the goal of encouraging players to build a little bit each day. There are now four resources relevant to world editors - Chaos, Voidshards, Husks, and Spectra.
Players are given a limited amount of Chaos each day, and building a world while the Chaos Meter has not been drained periodically earns Voidshards (which can be used to unlock options in the world editor) and attaches Husks to the world.
The old Creator Points system has been replaced with a system where players who earn a suitable amount of Sparks in a world convert that world's Husks into Spectra, the ultimate goal of the system.
This system encourages world editors to build each day, but not burn themselves out. It is possible to build without Chaos, but the player will earn less Spectra that way.
June 1
Made a huge amount of improvements to server-side processing over the last month. Not much is visible, but there have been a lot of efficiency changes that both speed up loading times and will help make the game more scalable in the future.
May 1
Fixed a persistent bug that was causing lag when too many colorized objects were on screen at once. The entire drawing function has been revamped and the game runs a lot faster overall!
April 19
Added some default art options for backgrounds and items. Also created some basic background music. Players can now create full-fledged worlds using only default assets.
This also allows me to add the filesystem itself as an unlockable instead of having it open by default, which I don't think is a bad thing. The less complexity the player needs to deal with when getting started, the better.
April 15
Heavily improved the main menu. Added some artwork, music, and all kinds of bells and whistles to make it feel a lot more like a properly-published game.
I kind of liked the old minimalist look, since it emphasized the idea of being created by the players, but this is a lot more marketable I think.
April 1
Opened the Steam store page and started a new round of testing!
February 14
Made some improvements to creature behavior and the aggression system. Enemies now have a weak form of object permanence that makes it harder to beat them by staying out of their line of sight.
January 30
Got the tileset all finished up! It's a good mix of flexibility and simplicity, and can make many kinds of outdoor and indoor terrain. I've also added bush, rock and tree sprites to go along with it.
August 8
Hired a graphic artist to work on the updated default tileset.
August 1
Started brainstorming some more ideas for the starter package. It can make some pretty decent Zelda-type dungeons, but I think it could do with an outdoor tileset as well.
It should be flexible, not especially complicated, and capable of building a fair variety of areas. So it should have at least grass, rocky hills, sand, snow, and some tiles for the inside of houses.
July 20
Added a whole bunch of new features that should make it easier to create basic items by simply selecting the options of what they do from a list. We've got canned animations (holding up the item, throwing it at a target), targeting rules, MP cost for spells, the ability to define a basic status effect inside an item in addition to applying an existing status effect sprite to a target for a set period of time, HP and MP recovery, damage, stuns, knockback and elemental-typed magic, and the ability to spawn other sprites. And all those can be done WITHOUT getting into custom functions.
There are some interface issues that need to be polished up a bit though. I'll work on that before I focus on the next big feature.
June 15
The Memento system has been updated. Mementos can now be defined with a "template". Mementos can also store object-based and array data now, rather than just strings and integers. This will make it possible to save much more complex data associated with a given world.
It's still kind of complicated, but at least now it's not more complicated than it needs to be. I suppose Mementos will always be one of the more high-level features of BoundWorlds. Other players can just give the player an item as a reward for completing a task and check to see if they have that item when they need to know if the player completed that task or not.
Speaking of items, there are other things that should probably be revamped. As they are now, the only thing items can do is run custom functions. This is to be expected for more complicated items, but what if a player just wants to create a potion that heals some HP, damages an enemy or applies a basic status effect without meddling with the function system?
I think I will add a "Simple Item Use" section in the item editor, just like the sprite editor has a "Simple Player Interaction" section.
May 20
I decided to hire a graphic artist to remake the main character's sprite. I think it would look a lot nicer if it had full 8-directional movement and maybe some professional touch-ups.
May 4
I'm remaking the entire Memento system.
For those new to BoundWorlds, Mementos are how the game manages "save" features. Normally, when a player leaves a world or exits the game, the world is reset for them when they re-enter it, and the only data that is retained across worlds and sessions are the items they collected.
Mementos let you store a set of variables inside a single item, which are invisible to the player. They can discard the entire Memento when outside of your world, but they cannot adjust the variables inside it. This lets you ensure that if they have a Memento, its saved variables are consistent with your world's rules.
For some reason I thought it was a good idea to save data in a string of bits, and have each variable represented by a certain number of bits at a particular location in the string. While this is a very space-efficient way of storing data, it is also not very user friendly from a world builder's perspective.
So, I'm going to change it to be more user-friendly.
May 3, 2023
Added a system that allows players to define sprites as "containers" as well as give them options for what kind of sprites they are able to "contain", and you can then place sprites inside them in the editor. This works similarly to the Status Effect system.
Currently "contained" sprites are just in a kind of limbo in-game, and can only be interacted with via custom functions.
Using this new system, I updated the Transformation Circle sprites so you can place a creature "inside" them, and then when the player steps on it they transform into that creature.
This can also be used to create things like chests and crates that release the sprites inside them when opened/broken. However, there is no current built-in option to do this, it must be done through functions. I should make an option to "release contained objects when destroyed". Seems like a reasonable expectation.
April 18, 2023
Okay! I kind of had to revamp the way that status effects worked, but you can now define a sprite as a status effect, and then apply it to other sprites in the editor to modify them in a variety of ways.
Stuff like Poison and Regeneration were straightforward, but I also made some more complex effects like a Fire effect that makes a sprite red, fireproof and lets them shoot fireballs, and an Ogre effect that makes them bigger, turns them green and raises their maximum HP and physical attack power.
These are just for testing purposes (I'm not sure if I will leave something like Ogre in the starter package). Players will of course be able to define their own status effects that can do all these things and more.
April 16
Officially signed up with Steam this week. Still need to put a proper page together, I suppose, if I want anyone to notice.
April 4, 2023
I've been studying Super Mario Maker's level editor. Leave it to Nintendo to create a level editor that is simple and easy to use. Obviously BoundWorlds has a much more elaborate system, since you can create your own objects, but I can still learn some things from it.
The way you can simply drag and drop objects onto other objects in the editor to make them interact is pretty cool. I think I'll make it so that you can define ways that your objects can interact with other objects in the editor. Almost like a Mario Maker...Maker.
BoundWorlds already has a fairly elaborate status effect system. It'll take some reprogramming, but I think that making status effects that can be applied in the editor could be fun.
March 30, 2023
Spent most of the week making new enemies. I've made my own custom sprite to replace the old gremlins, now it's an adorable little critter called a "Bitey". They run fast and bite things. I think they can serve as one of BoundWorlds' mascot mooks, unless I come up with a better one.
There are also beetles, bats, snakes, spiders, slimes, floating laser eyeballs, ghosts, insane cultists and skeletons. Each of them demonstrate one or more of BoundWorlds' core combat features.
The Guardian Golems which are activated by triggers and can navigate mazes are still in, as well as the flying fireballs which circle around things.
I think that seems like a solid roster of baddies for players to fill their dungeons with.
March 16, 2023
Implemented a better system for basic flying creatures. I don't plan on making flight TOO elaborate in the base game (though players will be able to create their own flying physics system if they so choose) but what's an action-adventure game without annoying bats and birds that swoop down on you?
So now you can make enemies that flap around and do swoop-attacks, all while using only the basic creature behavior options. I implemented it for the bats in the starter package.
March 5, 2023
I went over the starter package and I think it could use some improvements. The initial enemy list is based more on what I could find free graphics for than what is actually needed to demonstrate the game's core mechanics. Obviously there's some overlap but I should really make plans from the ground up.
Then there's the transformation circles, which will NEED to work nicely. The ability to create your own playable units is one of BoundWorlds' core features, so the demo package should include an object that can transform the player into any creature, and possibly some non-creatures.
I did make that already, but the implementation is a bit sloppy. Players have to read the instructions on the transformation circle to know that they need to place the creature on top of the circle. I can make that better.
March 1, 2023
I think it's about time that I started to actually start polishing up BoundWorlds for a proper release. It's been a personal side project for a very long time, and I always kind of hoped it would accumulate interest on its own until I could start working on it full-time, like Dwarf Fortress or Minecraft.
That...didn't quite work out.
So I guess I'm going to have to start working on it like a normal game developer instead, and that means keeping a proper devlog, and (groan) advertising. Well, maybe ChatGPT can help with the last part.
So, what's the state of the game right now? Well, it's functional. You can build and explore worlds in it. The last thing I did was set up the Builder Shop system, to ease new players into the higher levels of world editing features, although that's going to take some playtesting to ensure a good balance.
The main thing that I need to work on is polish. Like most programmers, I tend to focus on functionality and capability first, UX second. But you can't have a good game without a good UX.
So, I guess my checklist before completion is basically this:
- Polish up the World Editor UX so it's easy to use and looks good
- Come up with a solid starter package that can be used to make a wide variety of basic worlds as well as introduce players to world editing concepts
- Create a few demo worlds that demonstrate the potential of the world building engine
- Playtesting
- Other UX improvements
- Make the backend more scalable
- Release to Steam
A lot of work for a team of one, but nobody ever said it would be easy.
So, let's get going!